package com.nyx.bot.enums;

import lombok.Getter;

import static com.nyx.bot.enums.CommandConstants.*;

/**
 * 指令 枚举
 */
@Getter
public enum Codes {
    HELP(HELP_CMD, PermissionsEnums.USER),

    CHECK_VERSION(CHECK_VERSION_CMD, PermissionsEnums.USER),

    UPDATE_HTML(UPDATE_HTML_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_WARFRAME_RES_MARKET_ITEMS(UPDATE_WARFRAME_RES_MARKET_ITEMS_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_WARFRAME_RES_MARKET_RIVEN(UPDATE_WARFRAME_RES_MARKET_RIVEN_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_WARFRAME_RES_RM(UPDATE_WARFRAME_RES_RM_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_WARFRAME_RIVEN_CHANGES(UPDATE_WARFRAME_RIVEN_CHANGES_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_WARFRAME_SISTER(UPDATE_WARFRAME_SISTER_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_WARFRAME_TAR(UPDATE_WARFRAME_TAR_CMD, PermissionsEnums.SUPER_ADMIN),
    UPDATE_JAR(UPDATE_JAR_CMD, PermissionsEnums.SUPER_ADMIN),

    WARFRAME_ALERTS_PLUGIN(WARFRAME_ALERTS_CMD, PermissionsEnums.USER),
    WARFRAME_SORTIES_PLUGIN(WARFRAME_SORTIES_CMD, PermissionsEnums.USER),
    WARFRAME_LITE_SORITE_PLUGIN(WARFRAME_LITE_SORITE_CMD, PermissionsEnums.USER),
    WARFRAME_VOID_PLUGIN(WARFRAME_VOID_CMD, PermissionsEnums.USER),
    WARFRAME_ARBITRATION_EX_PLUGIN(WARFRAME_ARBITRATION_EX_CMD, PermissionsEnums.USER),
    WARFRAME_ARBITRATION_PLUGIN(WARFRAME_ARBITRATION_CMD, PermissionsEnums.USER),
    WARFRAME_DAILY_DEALS_PLUGIN(WARFRAME_DAILY_DEALS_CMD, PermissionsEnums.USER),
    WARFRAME_INVASIONS_PLUGIN(WARFRAME_INVASIONS_CMD, PermissionsEnums.USER),
    WARFRAME_ACTIVE_MISSION_PLUGIN(WARFRAME_ACTIVE_MISSION_CMD, PermissionsEnums.USER),
    WARFRAME_VOID_STORMS_PLUGIN(WARFRAME_VOID_STORMS_CMD, PermissionsEnums.USER),
    WARFRAME_ACTIVE_MISSION_PATH_PLUGIN(WARFRAME_ACTIVE_MISSION_PATH_CMD, PermissionsEnums.USER),
    WARFRAME_STEEL_PATH_PLUGIN(WARFRAME_STEEL_PATH_CMD, PermissionsEnums.USER),
    WARFRAME_ALL_CYCLE_PLUGIN(WARFRAME_ALL_CYCLE_CMD, PermissionsEnums.USER),
    WARFRAME_SYNDICATE_OSTRONS(WARFRAME_SYNDICATE_OSTRONS_CMD, PermissionsEnums.USER),
    WARFRAME_SYNDICATE_ENTRATI(WARFRAME_SYNDICATE_ENTRATI_CMD, PermissionsEnums.USER),
    WARFRAME_SYNDICATE_SOLARIS_UNITED(WARFRAME_SYNDICATE_SOLARIS_UNITED_CMD, PermissionsEnums.USER),
    WARFRAME_DUVIRI_CYCLE(WARFRAME_DUVIRI_CYCLE_CMD, PermissionsEnums.USER),
    WARFRAME_NIGH_WAVE_PLUGIN(WARFRAME_NIGH_WAVE_CMD, PermissionsEnums.USER),
    WARFRAME_RIVEN_DIS_UPDATE_PLUGIN(WARFRAME_RIVEN_DIS_UPDATE_CMD, PermissionsEnums.USER),
    WARFRAME_TRA_PLUGIN(WARFRAME_TRA_CMD, PermissionsEnums.USER),
    WARFRAME_MARKET_RIVEN_PLUGIN(WARFRAME_MARKET_RIVEN_CMD, PermissionsEnums.USER),
    WARFRAME_MARKET_ORDERS_PLUGIN(WARFRAME_MARKET_ORDERS_CMD, PermissionsEnums.USER),
    WARFRAME_RIVEN_MARKET_PLUGIN(WARFRAME_RIVEN_MARKET_CMD, PermissionsEnums.USER),
    WARFRAME_LICHES_PLUGIN(WARFRAME_LICHES_CMD, PermissionsEnums.USER),
    WARFRAME_SISTERS_PLUGIN(WARFRAME_SISTERS_CMD, PermissionsEnums.USER),
    WARFRAME_THE_PERLIN_SEQUENCE_PLUGIN(WARFRAME_THE_PERLIN_SEQUENCE_CMD, PermissionsEnums.USER),
    WARFRAME_MARKET_GOD_DUMP(WARFRAME_MARKET_GOD_DUMP_CMD, PermissionsEnums.USER),
    WARFRAME_MARKET_SILVER_DUMP(WARFRAME_MARKET_SILVER_DUMP_CMD, PermissionsEnums.USER),
    WARFRAME_RELICS_PLUGIN(WARFRAME_RELICS_CMD, PermissionsEnums.USER),
    WARFRAME_OPEN_RELICS_PLUGIN(WARFRAME_OPEN_RELICS_CMD, PermissionsEnums.USER),
    WARFRAME_RIVEN_ANALYSE(WARFRAME_RIVEN_ANALYSE_CMD, PermissionsEnums.USER),
    WARFRAME_SUBSCRIBE(WARFRAME_SUBSCRIBE_CMD, PermissionsEnums.USER),
    WARFRAME_UNSUBSCRIBE(WARFRAME_UNSUBSCRIBE_CMD, PermissionsEnums.USER),
    ;


    private final PermissionsEnums permissions;
    private String comm;

    Codes(String comm, PermissionsEnums permissions) {
        this.comm = comm;
        this.permissions = permissions;
    }

    public Codes setComm(String comm) {
        this.comm = comm;
        return this;
    }

}
